$(document).ready(function() {
    verifyLogin();
    atualizaGrid();

    $("#filtrar").keyup(function() {
        var index = $(this).parent().index();
        var nth = "#tableMinistrantes td:nth-child(" + (index + 1).toString() + ")";
        var valor = $(this).val().toUpperCase();
        $("#tableMinistrantes tbody tr").show();
        $(nth).each(function() {
            if ($(this).text().toUpperCase().indexOf(valor) < 0) {
                $(this).parent().hide();
            }
        });
    });

    $("#filtrar").blur(function() {
        $(this).val("");
    });
});

$("#btnNovo").click(function() {
    $("#inputId").val("");
    $("#inputIdUsuario").val("");
    $("#frmMinistrantes")[0].reset();
    $("#errorServer").hide();
    $("#errorEmpty").hide();
    $('#inputNome').removeClass('alert-danger');
    $("#ministranteModal").modal("show");
});//fim btnNovo

$("#salvar").click(function() {
    addMinistrante();
});//fim salvar

$("#btnBuscar").click(function() {
    atualizaGrid();
});//fim btnBuscar

$("#filtrar").keyup(function(e) {
    if (e.keyCode === 13)
        atualizaGrid();
});//fim filtrar

//cadastrar ministrante
function addMinistrante() {

    var valido = true;
    if ($('#inputNome').val().length === 0)
    {
        valido = false;
        $('#inputNome').addClass('alert-danger');
    }
    else
        $('#inputNome').removeClass('alert-danger');

    if (valido) {
        travarFormulario();
        ministrante = JSON.stringify({
            id: $("#inputId").val(),
            idUsuario: $("#inputIdUsuario").val(),
            razaoSocial: $("#inputRazaoSocial").val(),
            assessor: $("#inputAssessor").val(),
            cnpj: $("#inputCnpj").val(),
            conta: $("#inputConta").val(),
            agencia: $("#inputAgencia").val(),
            banco: $("#inputBanco").val(),
            nome: $("#inputNome").val(),
            cpf: $("#inputCpf").val(),
            rg: $("#inputRg").val(),
            email: $("#inputEmail").val(),
            login: $("#inputLogin").val(),
            senha: $("#inputSenha").val(),
            site: $("#inputSite").val(),
            formacao: $("#inputFormacao").val(),
            rua: $("#inputRua").val(),
            numero: $("#inputNumero").val(),
            complemento: $("#inputComplemento").val(),
            bairro: $("#inputBairro").val(),
            cep: $("#inputCep").val(),
            uf: $("#selectUf").val(),
            cidade: $("#inputCidade").val(),
            telefone: $("#inputTelefone").val(),
            celular: $("#inputCelular").val(),
            operadora: $("#selectOperadora").val(),
            dn: $("#inputDn").val(),
            sexo: $("#selectSexo").val(),
            curriculo: $("#inputCurriculo").val(),
            curriculoFile: $("#fileCurriculo").val()
        });

        $.ajax({
            type: "post",
            url: rootUrl + "ministrante/geraLoginSenha",
            dataType: "json",
            data: ministrante,
            success: function() {
                destravarFormulario();
                $('#ministranteModal').modal('hide');
                $("form")[0].reset();
                atualizaGrid();
            },
            error: function(result) {
                destravarFormulario();
                $("#errorServer").html(getErrorMessage(result.responseText));
                $("#errorServer").show();
            }
        });//fim ajax
    }//fim if
    else {
        $("#errorEmpty").show();
        $("#errorServer").hide();
    }
}//fim addMinistrante

//trava o formulário ao clicar no salvar
function travarFormulario() {
    $("#errorEmpty").hide();
    $("form").hide();
    $("#saveMessage").show();
    $("#salvar").addClass("disabled");
    $("#clearForm").addClass("disabled");
}//fim travarFormulario

//destrava o formulário
function destravarFormulario() {
    $("#errorEmpty").hide();
    $("#errorServer").hide();
    $("form").show();
    $("#saveMessage").hide();
    $("#salvar").removeClass("disabled");
    $("#clearForm").removeClass("disabled");
}//fim destravarFormulario

function atualizaGrid() {

    $("#tableMinistrantes").find("tbody tr").remove();
    $("#tableMinistrantes").find("tbody").append('<tr><td colspan=10><div class="alert alert-info"><img src="img/ajax-loader.gif"> Carregando...</div></td></tr>');

    $.ajax({
        type: "get",
        url: rootUrl + "ministrante/listAll",
        dataType: "json",
        success: function(data) {
            $("#tableMinistrantes").find("tbody tr").remove();
            data.result.forEach(function(ministrante) {
                row = "<tr>"
                        + "<td>" + ministrante.nome
                        + "</td><td>" + ministrante.celular
                        + "</td><td>" + ministrante.telefone
                        + "</td class='text-right'><td class='text-center'> <a class='btn btn-info btn-xs' href='#' id='edit' data-id='" + ministrante.id + "'><span class='glyphicon glyphicon-edit'></span> Editar</a> <a href='#' class='btn btn-danger btn-xs' data-idUsuario='" + ministrante.idUsuario + "' id='delete' data-id='" + ministrante.id + "' data-nome='" + ministrante.nome + "'><span class='glyphicon glyphicon-remove'></span> Deletar</a>"
                        + "</td></tr>";
                $("#tableMinistrantes > tbody:last").append(row);
            });
        }
    });
}

$("#delete").live("click", function() {
    id = $(this).attr("data-id");
    idUsuario = $(this).attr("data-idUsuario");
    nome = $(this).attr("data-nome");

    $("#lblMinistranteDelete").text(nome);

    $("#confirmDeleteModal").modal("show");
    $("#btnConfirmar").click(function() {

        $("#deleteMessage").show();

        $.ajax({
            type: "post",
            url: rootUrl + "ministrante/delete",
            dataType: "json",
            data: JSON.stringify({id: id, idUsuario: idUsuario}),
            success: function() {
//                row.parent().parent().parent().fadeTo(400, 0, function() {
//                    row.parent().parent().parent().remove();
//                });
                $("#deleteMessage").hide();
                $("#confirmDeleteModal").modal("hide");
                atualizaGrid();
            },
            error: function(result) {
                $("#errorServerDelete").html(getErrorMessage(result.responseText));
            }
        });
    });

});

//edita as informações de um ministrante
$("#edit").live("click", function() {
    id = $(this).attr("data-id");
    $.ajax({
        type: "get",
        url: rootUrl + "ministrante/list/" + id,
        dataType: "json",
        success: function(data) {
            ministrante = data.result;
            $("#inputId").val(ministrante.id);
            $("#inputIdUsuario").val(ministrante.idUsuario);
            $("#inputRazaoSocial").val(ministrante.razaoSocial),
                    $("#inputAssessor").val(ministrante.assessor),
                    $("#inputCnpj").val(ministrante.cnpj),
                    $("#inputConta").val(ministrante.conta),
                    $("#inputAgencia").val(ministrante.agencia),
                    $("#inputBanco").val(ministrante.banco),
                    $("#inputNome").val(ministrante.nome);
            $("#inputDn").val(ministrante.dn);
            $("#selectSexo").val(ministrante.sexo);
            $("#inputCpf").val(ministrante.cpf);
            $("#inputRg").val(ministrante.rg);
            $("#inputFormacao").val(ministrante.formacao);
            $("#inputCurriculoFile").val(ministrante.curriculoFile);
            $("#inputLogin").val(ministrante.login);
            $("#inputSenha").val(ministrante.senha);
            $("#inputRua").val(ministrante.rua);
            $("#inputNumero").val(ministrante.numero);
            $("#inputComplemento").val(ministrante.complemento);
            $("#inputBairro").val(ministrante.bairro);
            $("#inputCep").val(ministrante.cep);
            $("#selectUf").val(ministrante.uf);
            $("#inputCidade").val(ministrante.cidade);
            $("#inputTelefone").val(ministrante.telefone);
            $("#inputCelular").val(ministrante.celular);
            $("#selectOperadora").val(ministrante.operadora);
            $("#inputEmail").val(ministrante.email);
            $("#inputSite").val(ministrante.site);
            $("#inputCurriculo").val(ministrante.curriculo);

            $("#ministranteModal").modal("show");
        },
        error: function(data) {
            $("#errorServer").html(getErrorMessage(data.responseText));
        }

    });//fim ajax

});//fim edit
